# 3.	编写Python程序，实现如下功能：
# (1)	定义People类：
class People(object):

    # ①	添加类属性tax
    tax = 0

    # ②	添加初始化方法，初始化时，为对象添加如下属性
    # 			姓名name   年龄age   工作work    工资salary
    # 			私有属性 精力energy， 默认值为100
    def __init__(self, name, age, work, salary, energy=100):
        self.name = name
        self.age = age
        self.work = work
        self.salary = salary
        self.__energy = energy

    # ③	添加eat(money)方法,实现私有属性energy属性+10，salary减少money对应的值
    def eat(self, money):
        self.__energy += 10
        self.salary -= money

    # ④	添加打印方法，打印自我介绍，例如： 小红 18 医生  10000 100
    def __str__(self):
        return f'姓名：{self.name}, 年龄：{self.age}, 工作：{self.work}, 薪资：{self.salary}, 精力：{self.__energy}'

    # ⑤	添加working ( )方法，为类属性tax增加salary*0.2值，私有energy属性减少30
    def working(self, salary):
        self.salary += salary
        People.tax += salary * 0.2
        self.__energy -= 30

    # ⑥	添加sleep（）方法，私有energy属性+60
    def sleep(self):
        self.__energy += 60

    # ⑦	添加get_energy()方法，获取对象的私有energy属性值
    def get_energy(self):
        return self.__energy


# (2)	定义Woman类，继承People类
class Woman(People):

    # 添加shopping方法，接收money参数，salary属性减少money对应的值
    def shopping(self, money):
        self.salary -= money


# (3)	创建Woman类的一个对象，
xwoman = Woman('小红', 18, '医生', 1000)

# (4)	使用打印方法，打印自我介绍 例如：小红 18 医生  10000 100
print(xwoman)

# (5)	使用eat方法，传参为1000
print('eat(1000)')
xwoman.eat(1000)
print(xwoman)

# (6)	使用working方法，传参为2000
print('working(2000)')
xwoman.working(2000)
print(xwoman)

# (7)	使用sleep方法
print('sleep')
xwoman.sleep()
print(xwoman)

# (8)	使用shopping方法
print('shopping(10)')
xwoman.shopping(10)
print(xwoman)

# (9)	使用打印方法，打印自我介绍
print('使用打印方法，打印自我介绍')
xintro = str(xwoman)
print(xintro)

# (10)	将第二次的自我介绍写入文件f1.txt中
# (11)	用异常来处理文件打不开发生的错
xfilename = 'f1.txt'
try:
    xfile = open(xfilename, 'w', encoding='utf8')
    xfile.write(xintro)
    print(f'信息已经写入文件{xfilename}')
except:
    print('文件打不开')

